Writing a secure, scalable cloud backend for an application (e.g., a mobile application) is relatively difficult. For instance, a developer typically performs a substantial amount of set up to get a web service application backend configured and running in the cloud. Consequently, many companies recently have begun to provide Backend-as-a-Service (BaaS) solutions in the cloud. Companies that offer BaaS solutions are referred to as BaaS providers. Such BaaS providers generally try to simplify development of applications by providing turnkey solutions for common needs such as analytics, authentication, authorization, collaboration, data processing, persistent storage, push notifications, social networking, user management, etc. By using BaaS solutions, developers may focus on developing their application logic, rather than spending a substantial amount of time building the foundational backend for hosting their application logic.
However, conventional BaaS solutions offered by BaaS providers are rather inflexible. For instance, each BaaS solution traditionally provides a predetermined set of functionalities that cannot be modified by a developer. If a developer wishes to have a particular functionality that is not provided by a BaaS solution, the developer typically may either forego the particular functionality or manually create his/her own web service application backend, which is capable of providing the particular functionality, in lieu of using the BaaS solution.